package ihm;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import batailleNavale.ClientIHM;

/**
 * Classe utiliser par un joueur pour lancer le jeu en mode interface graphique
 * @author LE DOAN GIANG NGOC
 *
 */
public class Jeu extends JFrame implements ActionListener {

	private PanelJouer grillePerso;
	private PanelJouer grilleEnnemi;
	private JMenuItem mnQuitter;
	private JMenuItem mnNouveau;
	private JLabel lblInfo;
	private ClientIHM cli;
	private String nomJoueur;

	public Jeu() {

		JMenuBar menuBar;
		JMenu menu;

		setDefaultCloseOperation(Jeu.EXIT_ON_CLOSE);
		setSize(350, 700);
		setLocation(50, 0);
		setTitle("Bataille navale");

		setLayout(new BorderLayout());

		JPanel pJeu = new JPanel();
		pJeu.setLayout(new GridLayout(2, 1, 0, 20));

		menuBar = new JMenuBar();

		menu = new JMenu("Jeu");
		menuBar.add(menu);

		mnNouveau = new JMenuItem("Nouveau");
		mnNouveau.addActionListener(this);
		menu.add(mnNouveau);
		menu.addSeparator();
		mnQuitter = new JMenuItem("Quitter");
		mnQuitter.addActionListener(this);
		menu.add(mnQuitter);
		setJMenuBar(menuBar);

		grilleEnnemi = new PanelJouer(this, false);
		grillePerso = new PanelJouer(this, true);
		grilleEnnemi.setVisible(false);
		grillePerso.setVisible(false);
		pJeu.add(grilleEnnemi);
		pJeu.add(grillePerso);

		add(pJeu, BorderLayout.CENTER);

		lblInfo = new JLabel("Cliquer sur JEU-NOUVEAU pour commencer ");
		add(lblInfo, BorderLayout.SOUTH);
		setVisible(true);

	}

	public void setLblInfo(String message) {
		lblInfo.setText(message);
	}

	@Override
	public void actionPerformed(ActionEvent ae) {
		Object objTemp = ae.getSource();

		if (objTemp == mnNouveau) {
			cli = new ClientIHM(this);
			Thread t = new Thread(cli);
			t.start();
			
			grilleEnnemi.setCli(cli);
		}
		if (objTemp == mnQuitter)
			System.exit(0);		
	}
	
	public PanelJouer getGrillePerso() {
		return grillePerso;
	}

	public PanelJouer getGrilleEnnemi() {
		return grilleEnnemi;
	}

	public ClientIHM getCli() {
		return cli;
	}

	public static void main (String[] args) {
		new Jeu();
	}

	public JMenuItem getMnQuitter() {
		return mnQuitter;
	}

	public void setMnQuitter(JMenuItem mnQuitter) {
		this.mnQuitter = mnQuitter;
	}

	public JMenuItem getMnNouveau() {
		return mnNouveau;
	}

	public void setMnNouveau(JMenuItem mnNouveau) {
		this.mnNouveau = mnNouveau;
	}

	public JLabel getLblInfo() {
		return lblInfo;
	}

	public void setLblInfo(JLabel lblInfo) {
		this.lblInfo = lblInfo;
	}

	public String getNomJoueur() {
		return nomJoueur;
	}

	public void setNomJoueur(String nomJoueur) {
		this.nomJoueur = nomJoueur;
	}

	public void setGrillePerso(PanelJouer grillePerso) {
		this.grillePerso = grillePerso;
	}

	public void setGrilleEnnemi(PanelJouer grilleEnnemi) {
		this.grilleEnnemi = grilleEnnemi;
	}

	public void setCli(ClientIHM cli) {
		this.cli = cli;
	}
	
	
}